Skip to content

centralize b-value management at initialization (#155)#165

Open
Devguru-codes wants to merge 1 commit into
OSIPI:mainfrom
Devguru-codes:issue#155
Open

centralize b-value management at initialization (#155)#165
Devguru-codes wants to merge 1 commit into
OSIPI:mainfrom
Devguru-codes:issue#155

Conversation

@Devguru-codes
Copy link
Copy Markdown
Contributor

  • Remove bvalues parameter from all 27 algorithm ivim_fit() and ivim_fit_full_volume() signatures in src/standardized/
  • All algorithms now access b-values via self.bvalues exclusively
  • Add **kwargs to algorithms that lacked it (OJ_GU_seg, PV_MUMC, PvH_KB_NKI, TF_reference)
  • OsipiBase.osipi_fit() and osipi_fit_full_volume() enforce ValueError if bvalues not set at init
  • Update all test files to pass bvalues at OsipiBase(...) init
  • Update WrapImage production wrappers to use new API
  • Remove now-redundant bvalue equality checks in DL algorithms

fixes #155

- Remove bvalues parameter from all 27 algorithm ivim_fit() and
  ivim_fit_full_volume() signatures in src/standardized/
- All algorithms now access b-values via self.bvalues exclusively
- Add **kwargs to algorithms that lacked it (OJ_GU_seg, PV_MUMC,
  PvH_KB_NKI, TF_reference)
- OsipiBase.osipi_fit() and osipi_fit_full_volume() enforce ValueError
  if bvalues not set at init
- Update all test files to pass bvalues at OsipiBase(...) init
- Update WrapImage production wrappers to use new API
- Remove now-redundant bvalue equality checks in DL algorithms

Files modified: 33 (27 algorithms + OsipiBase + 3 tests + 2 wrappers)
@Devguru-codes
Copy link
Copy Markdown
Contributor Author

Hello @oliverchampion sir, please review the changes. If anything needs to be updated, let me know. Thank you.

bvalues = self.bvalues
else:
bvalues = np.asarray(bvalues)
bvalues = np.asarray(self.bvalues)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given the if statement above, we probably do not need the np.asarray. self.bvalues has alrady been set in an arrray.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(for all IAR's algorithms)

initial_guess = [self.initial_guess["D"], self.initial_guess["f"], self.initial_guess["Dp"], self.initial_guess["S0"]]

bvalues=np.array(bvalues)
bvalues=np.array(self.bvalues)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For all algorithms: do we need to set it als bvalues=np.array(self.bvalues)? Or could we not just use self.bvalues instead of bvalues?

Comment thread src/wrappers/OsipiBase.py
"b-values must be provided at initialization (__init__), not at fit-time. "
"Pass bvalues to the constructor: OsipiBase(bvalues=..., algorithm=...)"
)
use_bvalues = np.asarray(self.bvalues)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this means we can skip all other np.array/np.asarray

@oliverchampion
Copy link
Copy Markdown
Collaborator

Otherwise it looks good to me. I'm a little worried that stuf down the line may break, such as the longitudinal testing and the website deployment; these are only run once merged. But let's cross that bridge when we get there.

Maybe @IvanARashid can check the osipi_base.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Changing b-values

2 participants